using System;
using System.Data;
using System.Text;
using System.Configuration;
using System.Collections;
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Microsoft.Reporting.WebForms;
using GC2.Entities.Logistica;
using GC2.DataAccess.DALogistica;
using GC2.Bussines.BMLogistica;
using GC2.Entities.Seguridad;

public partial class Informes_RptHRutaView : GenericPage
{

    Usuarios usuario = new Usuarios();
    #region Controles

    #region Page_Load
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            if (!IsPostBack)
            {
                usuario = (Usuarios)Session["UsuarioActual"];
                int iReporte = int.Parse(Session["iReporte"].ToString());
                switch (iReporte)
                {
                    case 1:
                        HojaFinal();
                        break;
                    case 2:
                        Hojas();
                        break;
                    default:
                        break;
                }
            }
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #endregion

    #region Metodos

    #region Comun
    private List<ReportParameter> Comun()
    {
        List<ReportParameter> listaParametros = new List<ReportParameter>();
        try
        {
            HRuta hruta = (HRuta)Session["HRuta"];
            PLogistica pLogistica = new PLogistica();

            ReportParameter objParametro = new ReportParameter("pFecha", hruta.Fecha.ToShortDateString());
            listaParametros.Add(objParametro);

            objParametro = new ReportParameter("pTitulo", Session["pTitulo"].ToString());
            listaParametros.Add(objParametro);

            objParametro = new ReportParameter("pDestino", hruta.Destino);
            listaParametros.Add(objParametro);

            string sHoraSalida = hruta.HoraSalida.ToString();
            int iHoras = 0;
            StringBuilder sb = new StringBuilder();
            if (sHoraSalida.Length == 4)
            {
                sb.Append(sHoraSalida.Remove(2));
                iHoras = Convert.ToInt16(sHoraSalida.Remove(2));
            }
            else
            {
                sb.Append("0");
                sb.Append(sHoraSalida.Remove(1));
                iHoras = Convert.ToInt16(sHoraSalida.Remove(1));
            }
            sb.Append(":");
            iHoras = iHoras * 100;
            int iMinutos = hruta.HoraSalida - iHoras;
            string sMinutos = iMinutos.ToString();
            if (sMinutos.Length == 2)
            {
                sb.Append(sMinutos);
            }
            else
            {
                sb.Append("0");
                sb.Append(sMinutos);
            }
            objParametro = new ReportParameter("pHora", sb.ToString());
            listaParametros.Add(objParametro);

            objParametro = new ReportParameter("pChofer", hruta.Responsable);
            listaParametros.Add(objParametro);

            objParametro = new ReportParameter("pPatente", hruta.Patente);
            listaParametros.Add(objParametro);

            objParametro = new ReportParameter("pTipo", hruta.TipoRodado);
            listaParametros.Add(objParametro);
            
            sb = new StringBuilder();
            sb.Append(hruta.IdHRuta.ToString());
            sb.Append("/");
            sb.Append(hruta.Pagina.ToString());
            objParametro = new ReportParameter("pPlanilla", sb.ToString());
            listaParametros.Add(objParametro);

            sb = new StringBuilder();
            sb.Append("Pagina ");
            sb.Append(hruta.Pagina.ToString());
            sb.Append(" de ");
            sb.Append(hruta.CantPaginas.ToString());
            objParametro = new ReportParameter("pPagina", sb.ToString());
            listaParametros.Add(objParametro);

            objParametro = new ReportParameter("pOrigen", hruta.Origen);
            listaParametros.Add(objParametro);

            objParametro = new ReportParameter("pObs", hruta.Obs);
            listaParametros.Add(objParametro);

        }
        catch (Exception ex) { ErrorUI(ex); }

        return listaParametros;
    }
    #endregion

    #region Hojas
    private void Hojas()
    {
        try
        {
            List<ReportParameter> listaParametros = new List<ReportParameter>();
            listaParametros = Comun();

            rwHRuta.Visible = true;
            rwHRutaFinal.Visible = false;

            rwHRuta.LocalReport.SetParameters(listaParametros);

            rwHRuta.LocalReport.Refresh();

        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region HojaFinal
    private void HojaFinal()
    {
        try
        {
            List<ReportParameter> listaParametros = new List<ReportParameter>();
            listaParametros = Comun();

            HRuta hruta0 = (HRuta)Session["HRuta0"];

            ReportParameter  objParametro = new ReportParameter("pBultos", hruta0.Bultos.ToString());
            listaParametros.Add(objParametro);

            objParametro = new ReportParameter("pRemitos", hruta0.Items.ToString());
            listaParametros.Add(objParametro);

            objParametro = new ReportParameter("pKilos", hruta0.Kilos.ToString());
            listaParametros.Add(objParametro);

            objParametro = new ReportParameter("pCrr", hruta0.PorCobrar.ToString());
            listaParametros.Add(objParametro);

            rwHRuta.Visible = false;
            rwHRutaFinal.Visible = true;

            Session["HRuta0"] = null;

            rwHRutaFinal.LocalReport.SetParameters(listaParametros);

            rwHRutaFinal.LocalReport.Refresh();

        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #endregion


}
